import matplotlib

matplotlib.use('TkAgg')  # 或者根据你的系统选择合适的后端
import matplotlib.pyplot as plt
from matplotlib import rcParams

import random

rcParams['font.family'] = 'STHeiti'  # Mac
# rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'SimSun', 'FangSong', 'KaiTi']
rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

"""
折线图 plot
条形图 bar
饼图  pie
散点图 scatter
箱线图 boxplot
多个图标
组合图
"""

# 散点图
# 创建图表并创建
plt.figure(figsize=(10, 8))
# x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# y = [6, 26, 29, 38.5, 56, 63, 75, 79, 95]

x = []
y = []
for i in range(1000):
    tmp = random.uniform(0, 10)
    x.append(tmp)
    tmp2 = 2 * tmp + random.gauss(0, 2)
    y.append(tmp2)

plt.scatter(x, y,
            color='blue',
            alpha=0.5,  # 设置透明度
            s=20,    # 设置圆点大小
            label='数据'
            )

# 添加标题和标签
# plt.title('学习时长和成绩散点图', color='r', fontsize=20)
plt.title('X自变量与Y因变量的关系', color='r', fontsize=20)
#
plt.xlabel('X自变量', fontsize=10)
plt.ylabel('Y因变量', fontsize=10)

# 添加网格线
plt.grid(True, alpha=0.3)
# plt.grid(axis='y', alpha=0.3)

# 设置刻度字体大小
plt.xticks(rotation=0, fontsize=10)
plt.yticks(rotation=0, fontsize=10)  # rotation设置旋转角度

# 设置y轴的范围
plt.ylim(0, 25)

plt.plot([0, 10], [0, 20], color='red', linewidth=2, linestyle='-')

# 添加图例
plt.legend(loc='upper left')

# 自动优化排版
plt.tight_layout()
# 显示图表
plt.show()
